昨天玩了一下 Docker 的新版,覺得應該來跟大家分享一下,因此有了今天這篇番外篇。而關於標題的答案不用再糾結了! k8s 預設的容器即是 Docker 而在 Docker Edge 最新版目前也可以直接運行 k8s。
Docker 會發布兩種不同的版本,分別是 Stable 與 Edge。根據 官方說明:
Stable 版本:每一季會發布一次,屬於經過完整測試後的穩定版本,建議使用在正式環境中。Edge 版本:每個月會發布一次,最新最潮的功能都在這個版本,當然,太刺激的功能難免會有些不穩定,不過還是很值得一試的。Stable 或 Edge),如果已經有安裝過,請先移除後再安裝新版本。今天要推薦給大家使用的,即是 Edge 版本上的新功能 Kubernetes。我們可以在安裝完 Docker 之後直接使用 Kubernetes,不需要再安裝 minikube 模擬 k8s 叢集。
我們用 Mac 當作示範,首先下載 Docker Edge

下載完後,就按照步驟安裝 Docker,然後執行,然後你就會看到上面的小鯨魚:

接下來,當然是 Enable Kubernetes,它會自動幫你安裝 k8s 需要的檔案,完成後你就會在右下角看到 Kubernetes is running 的提示,就大功告成拉!

你也可以利用指令觀察 Client 端的 Orchestrator
$ docker version
Client:
 Version:	18.01.0-ce
 API version:	1.35
 Go version:	go1.9.2
 Git commit:	03596f5
 Built:	Wed Jan 10 20:05:58 2018
 OS/Arch:	darwin/amd64
 Experimental:	true
 Orchestrator:	kubernetes   <=== 這裡 Orchestrator 已經變成 Kubernetes
Server:
 Engine:
  Version:	18.01.0-ce
  API version:	1.35 (minimum version 1.12)
  Go version:	go1.9.2
  Git commit:	03596f5
  Built:	Wed Jan 10 20:13:12 2018
  OS/Arch:	linux/amd64
  Experimental:	true
那麼該如何使用呢?就照著 Day 8 - 與 k8s 溝通: kubectl 所提到的,先查看一下
$ kubectl config get-contexts
...
CURRENT   NAME                CLUSTER                     AUTHINFO        NAMESPACE
          minikube            minikube                    minikube                    
*         docker-for-desktop  docker-for-desktop-cluster  docker-for-desktop
<=== 這裡會多一個 docker-for-desktop 的設定
這裡你會看到多一個 docker-for-desktop 的設定,接著就切換到 docker-for-desktop
$ kubectl config use-context docker-for-desktop
Switched to context "docker-for-desktop".
$ kubectl get namespaces
NAME          STATUS    AGE
default       Active    5m
docker        Active    5m
kube-public   Active    5m
kube-system   Active    5m
到這裡,相信大家都知道要怎麼使用了吧!立馬部署一個 Deployment 試試
$ kubectl apply -f simple.yaml  <=== simple.yaml 在 Day 10 - 建構組件內
$ kubectl get pods
NAME                    READY     STATUS    RESTARTS   AGE
nginx-75f4785b7-25pvr   1/1       Running   0          1m
nginx-75f4785b7-pw4ln   1/1       Running   0          1m
nginx-75f4785b7-s9vrk   1/1       Running   0          1m
關於其他操作,你可以參考這裡